/*
 * XML Type:  Investment401k
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.Investment401K
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04;


/**
 * An XML Investment401k(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public interface Investment401K extends org.apache.xmlbeans.XmlObject
{
    public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)schema.system.s3A74FF4CC3627C5B0D40068015746F8A.TypeSystemHolder.typeSystem.resolveHandle("investment401kcb19type");
    
    /**
     * Gets the "EMPLOYERNAME" element
     */
    java.lang.String getEMPLOYERNAME();
    
    /**
     * Gets (as xml) the "EMPLOYERNAME" element
     */
    net.ofx.types.x2003.x04.GenericNameType xgetEMPLOYERNAME();
    
    /**
     * Sets the "EMPLOYERNAME" element
     */
    void setEMPLOYERNAME(java.lang.String employername);
    
    /**
     * Sets (as xml) the "EMPLOYERNAME" element
     */
    void xsetEMPLOYERNAME(net.ofx.types.x2003.x04.GenericNameType employername);
    
    /**
     * Gets the "PLANID" element
     */
    java.lang.String getPLANID();
    
    /**
     * Gets (as xml) the "PLANID" element
     */
    net.ofx.types.x2003.x04.IdType xgetPLANID();
    
    /**
     * True if has "PLANID" element
     */
    boolean isSetPLANID();
    
    /**
     * Sets the "PLANID" element
     */
    void setPLANID(java.lang.String planid);
    
    /**
     * Sets (as xml) the "PLANID" element
     */
    void xsetPLANID(net.ofx.types.x2003.x04.IdType planid);
    
    /**
     * Unsets the "PLANID" element
     */
    void unsetPLANID();
    
    /**
     * Gets the "PLANJOINDATE" element
     */
    java.lang.String getPLANJOINDATE();
    
    /**
     * Gets (as xml) the "PLANJOINDATE" element
     */
    net.ofx.types.x2003.x04.DateTimeType xgetPLANJOINDATE();
    
    /**
     * True if has "PLANJOINDATE" element
     */
    boolean isSetPLANJOINDATE();
    
    /**
     * Sets the "PLANJOINDATE" element
     */
    void setPLANJOINDATE(java.lang.String planjoindate);
    
    /**
     * Sets (as xml) the "PLANJOINDATE" element
     */
    void xsetPLANJOINDATE(net.ofx.types.x2003.x04.DateTimeType planjoindate);
    
    /**
     * Unsets the "PLANJOINDATE" element
     */
    void unsetPLANJOINDATE();
    
    /**
     * Gets the "EMPLOYERCONTACTINFO" element
     */
    java.lang.String getEMPLOYERCONTACTINFO();
    
    /**
     * Gets (as xml) the "EMPLOYERCONTACTINFO" element
     */
    net.ofx.types.x2003.x04.GenericContactInfoType xgetEMPLOYERCONTACTINFO();
    
    /**
     * True if has "EMPLOYERCONTACTINFO" element
     */
    boolean isSetEMPLOYERCONTACTINFO();
    
    /**
     * Sets the "EMPLOYERCONTACTINFO" element
     */
    void setEMPLOYERCONTACTINFO(java.lang.String employercontactinfo);
    
    /**
     * Sets (as xml) the "EMPLOYERCONTACTINFO" element
     */
    void xsetEMPLOYERCONTACTINFO(net.ofx.types.x2003.x04.GenericContactInfoType employercontactinfo);
    
    /**
     * Unsets the "EMPLOYERCONTACTINFO" element
     */
    void unsetEMPLOYERCONTACTINFO();
    
    /**
     * Gets the "BROKERCONTACTINFO" element
     */
    java.lang.String getBROKERCONTACTINFO();
    
    /**
     * Gets (as xml) the "BROKERCONTACTINFO" element
     */
    net.ofx.types.x2003.x04.GenericContactInfoType xgetBROKERCONTACTINFO();
    
    /**
     * True if has "BROKERCONTACTINFO" element
     */
    boolean isSetBROKERCONTACTINFO();
    
    /**
     * Sets the "BROKERCONTACTINFO" element
     */
    void setBROKERCONTACTINFO(java.lang.String brokercontactinfo);
    
    /**
     * Sets (as xml) the "BROKERCONTACTINFO" element
     */
    void xsetBROKERCONTACTINFO(net.ofx.types.x2003.x04.GenericContactInfoType brokercontactinfo);
    
    /**
     * Unsets the "BROKERCONTACTINFO" element
     */
    void unsetBROKERCONTACTINFO();
    
    /**
     * Gets the "DEFERPCTPRETAX" element
     */
    java.lang.String getDEFERPCTPRETAX();
    
    /**
     * Gets (as xml) the "DEFERPCTPRETAX" element
     */
    net.ofx.types.x2003.x04.RateType xgetDEFERPCTPRETAX();
    
    /**
     * True if has "DEFERPCTPRETAX" element
     */
    boolean isSetDEFERPCTPRETAX();
    
    /**
     * Sets the "DEFERPCTPRETAX" element
     */
    void setDEFERPCTPRETAX(java.lang.String deferpctpretax);
    
    /**
     * Sets (as xml) the "DEFERPCTPRETAX" element
     */
    void xsetDEFERPCTPRETAX(net.ofx.types.x2003.x04.RateType deferpctpretax);
    
    /**
     * Unsets the "DEFERPCTPRETAX" element
     */
    void unsetDEFERPCTPRETAX();
    
    /**
     * Gets the "DEFERPCTAFTERTAX" element
     */
    java.lang.String getDEFERPCTAFTERTAX();
    
    /**
     * Gets (as xml) the "DEFERPCTAFTERTAX" element
     */
    net.ofx.types.x2003.x04.RateType xgetDEFERPCTAFTERTAX();
    
    /**
     * True if has "DEFERPCTAFTERTAX" element
     */
    boolean isSetDEFERPCTAFTERTAX();
    
    /**
     * Sets the "DEFERPCTAFTERTAX" element
     */
    void setDEFERPCTAFTERTAX(java.lang.String deferpctaftertax);
    
    /**
     * Sets (as xml) the "DEFERPCTAFTERTAX" element
     */
    void xsetDEFERPCTAFTERTAX(net.ofx.types.x2003.x04.RateType deferpctaftertax);
    
    /**
     * Unsets the "DEFERPCTAFTERTAX" element
     */
    void unsetDEFERPCTAFTERTAX();
    
    /**
     * Gets the "MATCHINFO" element
     */
    net.ofx.types.x2003.x04.MatchInfo getMATCHINFO();
    
    /**
     * True if has "MATCHINFO" element
     */
    boolean isSetMATCHINFO();
    
    /**
     * Sets the "MATCHINFO" element
     */
    void setMATCHINFO(net.ofx.types.x2003.x04.MatchInfo matchinfo);
    
    /**
     * Appends and returns a new empty "MATCHINFO" element
     */
    net.ofx.types.x2003.x04.MatchInfo addNewMATCHINFO();
    
    /**
     * Unsets the "MATCHINFO" element
     */
    void unsetMATCHINFO();
    
    /**
     * Gets the "CONTRIBINFO" element
     */
    net.ofx.types.x2003.x04.ContributionInfo getCONTRIBINFO();
    
    /**
     * True if has "CONTRIBINFO" element
     */
    boolean isSetCONTRIBINFO();
    
    /**
     * Sets the "CONTRIBINFO" element
     */
    void setCONTRIBINFO(net.ofx.types.x2003.x04.ContributionInfo contribinfo);
    
    /**
     * Appends and returns a new empty "CONTRIBINFO" element
     */
    net.ofx.types.x2003.x04.ContributionInfo addNewCONTRIBINFO();
    
    /**
     * Unsets the "CONTRIBINFO" element
     */
    void unsetCONTRIBINFO();
    
    /**
     * Gets the "CURRENTVESTPCT" element
     */
    java.lang.String getCURRENTVESTPCT();
    
    /**
     * Gets (as xml) the "CURRENTVESTPCT" element
     */
    net.ofx.types.x2003.x04.RateType xgetCURRENTVESTPCT();
    
    /**
     * True if has "CURRENTVESTPCT" element
     */
    boolean isSetCURRENTVESTPCT();
    
    /**
     * Sets the "CURRENTVESTPCT" element
     */
    void setCURRENTVESTPCT(java.lang.String currentvestpct);
    
    /**
     * Sets (as xml) the "CURRENTVESTPCT" element
     */
    void xsetCURRENTVESTPCT(net.ofx.types.x2003.x04.RateType currentvestpct);
    
    /**
     * Unsets the "CURRENTVESTPCT" element
     */
    void unsetCURRENTVESTPCT();
    
    /**
     * Gets array of all "VESTINFO" elements
     */
    net.ofx.types.x2003.x04.VestInfo[] getVESTINFOArray();
    
    /**
     * Gets ith "VESTINFO" element
     */
    net.ofx.types.x2003.x04.VestInfo getVESTINFOArray(int i);
    
    /**
     * Returns number of "VESTINFO" element
     */
    int sizeOfVESTINFOArray();
    
    /**
     * Sets array of all "VESTINFO" element
     */
    void setVESTINFOArray(net.ofx.types.x2003.x04.VestInfo[] vestinfoArray);
    
    /**
     * Sets ith "VESTINFO" element
     */
    void setVESTINFOArray(int i, net.ofx.types.x2003.x04.VestInfo vestinfo);
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "VESTINFO" element
     */
    net.ofx.types.x2003.x04.VestInfo insertNewVESTINFO(int i);
    
    /**
     * Appends and returns a new empty value (as xml) as the last "VESTINFO" element
     */
    net.ofx.types.x2003.x04.VestInfo addNewVESTINFO();
    
    /**
     * Removes the ith "VESTINFO" element
     */
    void removeVESTINFO(int i);
    
    /**
     * Gets array of all "LOANINFO" elements
     */
    net.ofx.types.x2003.x04.LoanInfo[] getLOANINFOArray();
    
    /**
     * Gets ith "LOANINFO" element
     */
    net.ofx.types.x2003.x04.LoanInfo getLOANINFOArray(int i);
    
    /**
     * Returns number of "LOANINFO" element
     */
    int sizeOfLOANINFOArray();
    
    /**
     * Sets array of all "LOANINFO" element
     */
    void setLOANINFOArray(net.ofx.types.x2003.x04.LoanInfo[] loaninfoArray);
    
    /**
     * Sets ith "LOANINFO" element
     */
    void setLOANINFOArray(int i, net.ofx.types.x2003.x04.LoanInfo loaninfo);
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "LOANINFO" element
     */
    net.ofx.types.x2003.x04.LoanInfo insertNewLOANINFO(int i);
    
    /**
     * Appends and returns a new empty value (as xml) as the last "LOANINFO" element
     */
    net.ofx.types.x2003.x04.LoanInfo addNewLOANINFO();
    
    /**
     * Removes the ith "LOANINFO" element
     */
    void removeLOANINFO(int i);
    
    /**
     * Gets the "INV401KSUMMARY" element
     */
    net.ofx.types.x2003.x04.Investment401KSummary getINV401KSUMMARY();
    
    /**
     * True if has "INV401KSUMMARY" element
     */
    boolean isSetINV401KSUMMARY();
    
    /**
     * Sets the "INV401KSUMMARY" element
     */
    void setINV401KSUMMARY(net.ofx.types.x2003.x04.Investment401KSummary inv401KSUMMARY);
    
    /**
     * Appends and returns a new empty "INV401KSUMMARY" element
     */
    net.ofx.types.x2003.x04.Investment401KSummary addNewINV401KSUMMARY();
    
    /**
     * Unsets the "INV401KSUMMARY" element
     */
    void unsetINV401KSUMMARY();
    
    /**
     * A factory class with static methods for creating instances
     * of this type.
     */
    
    public static final class Factory
    {
        public static net.ofx.types.x2003.x04.Investment401K newInstance() {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K newInstance(org.apache.xmlbeans.XmlOptions options) {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.lang.String s) throws org.apache.xmlbeans.XmlException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( s, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.lang.String s, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( s, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.File f) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( f, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.File f, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( f, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.net.URL u) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.net.URL u, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.InputStream is) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.InputStream is, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.Reader r) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(java.io.Reader r, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(org.w3c.dom.Node node) throws org.apache.xmlbeans.XmlException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(org.w3c.dom.Node node, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, options ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, null ); }
        
        public static net.ofx.types.x2003.x04.Investment401K parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (net.ofx.types.x2003.x04.Investment401K) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, options ); }
        
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, null ); }
        
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, options ); }
        
        private Factory() { } // No instance of this class allowed
    }
}
